﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LiveSequence.Interface;
using LiveSequence.Suite.Domain;
using LiveSequence.Common.Domain;


namespace LiveSequence.Suite.Interfaces
{
  public interface ISDIController
  {
    event EventHandler UpdateView;
    event EventHandler IsDirtyChanged;
    event EventHandler SelectedDiagramChanged;

    LSMethodCallDiagram SelectedDiagram
    {
      get; 
      set;
    }

    LSProject Project
    { 
      get;
    }

    string FileName
    { 
      get;
    }

    string FileExtension
    {
      get; set;
    }

    bool IsDirty
    {
      get; set;
    }

    void CreateDiagram(string strMethodName, string strTypeName, string strNameSpace, string strAssemblyName);

    //Save the document
    void SaveDocument(string fileName);


    //Open the document
    void OpenDocument(string fileName);


    //Updates all the views of the document with the new data
    void OnUpdateAllViews(IView sender);

    // Deletes the contents of the document
    void DeleteContents();

    bool Clear();

  }
}
